Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

ПРОГРАМА ФАКТОРІАЛ

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2013
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Архітектура комп'ютерів

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” / Кафедра ЕОМ ЗВІТ про виконання лабораторної роботи № 6 «ПРОГРАМА ФАКТОРІАЛ» з дисципліни «Архітектура комп’ютерів ч.2» Мета: опанування навичок з самостійного планування експерименту та розв'язування інженерних задач, що при цьому виникають, з подальшим оцінюванням ефективності запропонованих та втілених пропозицій. Завдання: засобами архітектурного симулятора WinDLX дослідити на прикладі творених студентом фрагментів програмного коду можливості виконання обчислення факторіалу на рівні апаратури та позитивні ефекти, що при цьому досягаються. За результатами проведених лабораторних досліджень оформити звіт та захистити його. Хід роботи Завантажую базову програму. / Виправляю помилки базової програми. / Додаю до коду модуль InputUnsigned .data ;*** Data for Read-Trap ReadBuffer: .space 80 ReadPar: .word 0,ReadBuffer,80 ;*** Data for Printf-Trap PrintfPar1: .space 4 SaveR2: .space 4 SaveR3: .space 4 SaveR4: .space 4 SaveR5: .space 4 .text .global InputUnsigned InputUnsigned: ;*** save register contents sw SaveR2,r2 sw SaveR3,r3 sw SaveR4,r4 sw SaveR5,r5 ;*** Prompt sw PrintfPar1,r1 addi r14,r0,PrintfPar1 trap 5 ;*** call Trap-3 to read line addi r14,r0,ReadPar trap 3 ;*** determine value addi r2,r0,ReadBuffer addi r1,r0,0 addi r4,r0,10 ;Decimal system Loop1: ;*** reads digits to end of line lbu r3,0(r2) seqi r5,r3,10 ;LF -> Exit bnez r5,Finish1 subi r3,r3,48 ;ґ0ґ multu r1,r1,r4 ;Shift decimal add r1,r1,r3 addi r2,r2,1 ;increment pointer j Loop1 Finish1: ;*** restore old register contents lw r2,SaveR2 lw r3,SaveR3 lw r4,SaveR4 lw r5,SaveR5 jr r31 ; Return Виконую базову програму на симуляторі, наводжу результат виконання. / / Модифікую базову програму. ; WINDLX Ex.3: Factorial ; (c) 1991 Guenther Raidl ; Modified: 1992 Maziar Khosravipour ; Program begin at symbol main ; requires module INPUT ; read a number from stdin and calculate the factorial (type: double) ; the result is written to stdout ;--- .data Prompt: .asciiz "An integer value >1 : " PrintfFormat: .asciiz "Factorial = %g\n\n" .align 2 PrintfPar: .word PrintfFormat PrintfValue:.space 8 .text .global main main: ;--- Read value from stdin into R1 addi r1,r0,Prompt jal InputUnsigned ;--- init values movi2fp f10,r1 ;R1 -> D0 D0..Count register cvti2d f0,f10 addi r2,r0,1 ;1 -> D2 D2..result movi2fp f11,r2 cvti2d f2,f11 movd f4,f2 ;1-> D4 D4..Constant 1 ;--- Break loop if D0 = 1 Loop: led f0,f4 ;D0<=1 ? bfpt Finish ;--- Multiplication and next loop multd f2,f2,f0 subd f0,f0,f4 j Loop Finish: ;--- write result to stdout sd PrintfValue,f2 addi r14,r0,PrintfPar trap 5 ;--- end trap 0 .data ;*** Data for Read-Trap ReadBuffer: .space 80 ReadPar: .word 0,ReadBuffer,80 ;*** Data for Printf-Trap PrintfPar1: .space 4 SaveR2: .space 4 SaveR3: .space 4 SaveR4: .space 4 SaveR5: .space 4 .text .global InputUnsigned InputUnsigned: ;*** save register contents sw SaveR2,r2 sw SaveR3,r3 sw SaveR4,r4 sw SaveR5,r5 ;*** Prompt sw PrintfPar1,r1 addi r14,r0,PrintfPar1 trap 5 ;*** call Trap-3 to read line addi r14,r0,ReadPar trap 3 ;*** determine value addi r2,r0,ReadBuffer addi r1,r0,0 addi r4,r0,10 ;Decimal system Loop1: ;*** reads digits to end of line lbu r3,0(r2) nop seqi r5,r3,10 ;LF -> Exit nop bnez r5,Finish1 subi r3,r3,48 ;ґ0ґ multu r1,r1,r4 ;Shift decimal nop nop nop nop add r1,r1,r3 addi r2,r2,1 ;increment pointer j Loop1 Finish1: ;*** restore old register contents lw r2,SaveR2 lw r3,SaveR3 lw r4,SaveR4 lw r5,SaveR5 jr r31 ; Return Виконую модифіковану програму на симуляторі, наводжу результат виконання. / / Висновок: на лабораторній роботі я дослідив базову програму, вирішив інженерну задачу з розв’язання проблем...
Антиботан аватар за замовчуванням

20.05.2013 22:05

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини